1 Imports System.Data.SqlClient
2 Imports Excel = Microsoft.Office.Interop.Excel
3 Imports System.IO
4
5 Public Class frmBillingRecord
6
7     Public Sub Getdata()
8         Try
9             con = New SqlConnection(cs)
10             con.Open()
11             cmd = New SqlCommand(
"Select Inv_ID, RTRIM(InvoiceNo), InvoiceDate, Customer.ID,RTRIM(Customer.CustomerID),RTRIM(Name),RTRIM(ContactNo), GrandTotal, TotalPaid, Balance, RTRIM(InvoiceInfo.Remarks) from Customer,InvoiceInfo where Customer.ID=InvoiceInfo.CustomerID order by InvoiceDate", con)
12             rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
13             dgw.Rows.Clear()
14             While (rdr.Read() = True)
15                 dgw.Rows.Add(rdr(
0), rdr(1), rdr(2), rdr(3), rdr(4), rdr(5), rdr(6), rdr(7), rdr(8), rdr(9), rdr(10))
16             End While
17             con.Close()
18         Catch ex As Exception
19             MessageBox.Show(ex.Message,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
20         End Try
21     End Sub
22     Private Sub frmLogs_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
23         Getdata()
24         fillInvoiceNo()
25     End Sub
26
27     Private Sub dgw_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles dgw.MouseClick
28         Try
29             If dgw.Rows.Count >
0 Then
30                 Dim dr As DataGridViewRow = dgw.SelectedRows(
0)
31                 frmBilling.Show()
32                 Me.Hide()
33                 frmBilling.txtID.Text = dr.Cells(
0).Value.ToString()
34                 frmBilling.txtInvoiceNo.Text = dr.Cells(
1).Value.ToString()
35                 frmBilling.dtpInvoiceDate.Text = dr.Cells(
2).Value.ToString()
36                 frmBilling.txtCustomerID.Text = dr.Cells(
4).Value.ToString()
37                 frmBilling.txtCID.Text = dr.Cells(
3).Value.ToString()
38                 frmBilling.txtCustomerName.Text = dr.Cells(
5).Value.ToString()
39                 frmBilling.txtContactNo.Text = dr.Cells(
6).Value.ToString()
40                 frmBilling.txtGrandTotal.Text = dr.Cells(
7).Value.ToString()
41                 frmBilling.txtTotalPayment.Text = dr.Cells(
8).Value.ToString()
42                 frmBilling.txtPaymentDue.Text = dr.Cells(
9).Value.ToString()
43                 frmBilling.txtRemarks.Text = dr.Cells(
10).Value.ToString()
44                 frmBilling.btnSave.Enabled = False
45                 frmBilling.btnUpdate.Enabled = True
46                 frmBilling.btnPrint.Enabled = True
47                 frmBilling.btnDelete.Enabled = True
48                 frmBilling.lblSet.Text =
"Not Allowed"
49                 frmBilling.btnAdd.Enabled = False
50                 frmBilling.txtCustomerName.ReadOnly = True
51                 frmBilling.txtContactNo.ReadOnly = True
52                 con = New SqlConnection(cs)
53                 con.Open()
54                 Dim sql As String =
"SELECT RTRIM(ProductCode),RTRIM(ProductName), Invoice_Product.CostPrice, Invoice_Product.SellingPrice, Invoice_Product.Margin, Invoice_Product.Qty, Invoice_Product.Amount, Invoice_Product.DiscountPer, Invoice_Product.Discount, Invoice_Product.VATPer, Invoice_Product.VAT, Invoice_Product.TotalAmount,Product.PID from InvoiceInfo,Invoice_Product,Product where InvoiceInfo.Inv_ID=Invoice_Product.InvoiceID and Product.PID=Invoice_Product.ProductID and InvoiceInfo.Inv_ID=@d1"
55                 cmd = New SqlCommand(sql, con)
56                 cmd.Parameters.AddWithValue(
"@d1", dr.Cells(0).Value.ToString())
57                 rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
58                 frmBilling.DataGridView1.Rows.Clear()
59                 While (rdr.Read() = True)
60                     frmBilling.DataGridView1.Rows.Add(rdr(
0), rdr(1), rdr(2), rdr(3), rdr(4), rdr(5), rdr(6), rdr(7), rdr(8), rdr(9), rdr(10), rdr(11), rdr(12))
61                 End While
62                 con.Close()
63                 con = New SqlConnection(cs)
64                 con.Open()
65                 Dim sql1 As String =
"SELECT RTRIM(PaymentMode),Invoice_Payment.TotalPaid,PaymentDate from InvoiceInfo,Invoice_Payment where InvoiceInfo.Inv_ID=Invoice_Payment.InvoiceID and InvoiceInfo.Inv_ID=@d1"
66                 cmd = New SqlCommand(sql1, con)
67                 cmd.Parameters.AddWithValue(
"@d1", dr.Cells(0).Value.ToString())
68                 rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
69                 frmBilling.DataGridView2.Rows.Clear()
70                 While (rdr.Read() = True)
71                     frmBilling.DataGridView2.Rows.Add(rdr(
0), rdr(1), rdr(2))
72                 End While
73                 con.Close()
74                 con = New SqlConnection(cs)
75                 con.Open()
76                 Dim ct As String =
"select RTRIM(CustomerType) from Customer where ID=" & dr.Cells(3).Value & ""
77                 cmd = New SqlCommand(ct)
78                 cmd.Connection = con
79                 rdr = cmd.ExecuteReader()
80                 If rdr.Read Then
81                     frmBilling.txtCustomerType.Text = rdr.GetValue(
0)
82                     If Not rdr Is Nothing Then
83                         rdr.Close()
84                     End If
85                     Exit Sub
86                 End If
87                 con.Close()
88
89             End If
90         Catch ex As Exception
91             MessageBox.Show(ex.Message,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
92         End Try
93     End Sub
94
95     Private Sub dgw_RowPostPaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowPostPaintEventArgs) Handles dgw.RowPostPaint
96         Dim strRowNumber As String = (e.RowIndex +
1).ToString()
97         Dim size As SizeF = e.Graphics.MeasureString(strRowNumber, Me.Font)
98         If dgw.RowHeadersWidth < Convert.ToInt32((size.Width +
20)) Then
99             dgw.RowHeadersWidth = Convert.ToInt32((size.Width +
20))
100         End If
101         Dim b As Brush = SystemBrushes.ControlText
102         e.Graphics.DrawString(strRowNumber, Me.Font, b, e.RowBounds.Location.X +
15, e.RowBounds.Location.Y + ((e.RowBounds.Height - size.Height) / 2))
103
104     End Sub
105     Sub fillInvoiceNo()
106         Try
107             con = New SqlConnection(cs)
108             con.Open()
109             adp = New SqlDataAdapter()
110             adp.SelectCommand = New SqlCommand(
"SELECT distinct RTRIM(InvoiceNo) FROM InvoiceInfo", con)
111             ds = New DataSet(
"ds")
112             adp.Fill(ds)
113             dtable = ds.Tables(
0)
114             cmbInvoiceNo.Items.Clear()
115             For Each drow As DataRow In dtable.Rows
116                 cmbInvoiceNo.Items.Add(drow(
0).ToString())
117             Next
118         Catch ex As Exception
119             MessageBox.Show(ex.Message,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
120         End Try
121     End Sub
122     Sub Reset()
123         cmbInvoiceNo.Text =
""
124         txtCustomerName.Text =
""
125         fillInvoiceNo()
126         dtpDateFrom.Text = Today
127         dtpDateTo.Text = Today
128         DateTimePicker2.Text = Today
129         DateTimePicker1.Text = Today
130         Getdata()
131     End Sub
132     Private Sub btnReset_Click(sender As System.Object, e As System.EventArgs) Handles btnReset.Click
133         Reset()
134     End Sub
135
136     Private Sub btnClose_Click(sender As System.Object, e As System.EventArgs) Handles btnClose.Click
137         Me.Close()
138     End Sub
139
140
141     Private Sub btnExportExcel_Click(sender As System.Object, e As System.EventArgs) Handles btnExportExcel.Click
142         Dim rowsTotal, colsTotal As Short
143         Dim I, j, iC As Short
144         System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
145         Dim xlApp As New Excel.Application
146         Try
147             Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add
148             Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(
1), Excel.Worksheet)
149             xlApp.Visible = True
150
151             rowsTotal = dgw.RowCount
152             colsTotal = dgw.Columns.Count -
1
153             With excelWorksheet
154                 .Cells.Select()
155                 .Cells.Delete()
156                 For iC =
0 To colsTotal
157                     .Cells(
1, iC + 1).Value = dgw.Columns(iC).HeaderText
158                 Next
159                 For I =
0 To rowsTotal - 1
160                     For j =
0 To colsTotal
161                         .Cells(I +
2, j + 1).value = dgw.Rows(I).Cells(j).Value
162                     Next j
163                 Next I
164                 .Rows(
"1:1").Font.FontStyle = "Bold"
165                 .Rows(
"1:1").Font.Size = 12
166
167                 .Cells.Columns.AutoFit()
168                 .Cells.Select()
169                 .Cells.EntireColumn.AutoFit()
170                 .Cells(
1, 1).Select()
171             End With
172         Catch ex As Exception
173             MessageBox.Show(ex.Message,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
174         Finally
175             
'RELEASE ALLOACTED RESOURCES
176             System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
177             xlApp = Nothing
178         End Try
179     End Sub
180
181     Private Sub btnGetData_Click(sender As System.Object, e As System.EventArgs) Handles btnGetData.Click
182         Try
183             con = New SqlConnection(cs)
184             con.Open()
185             cmd = New SqlCommand(
"Select Inv_ID, RTRIM(InvoiceNo), InvoiceDate, Customer.ID,RTRIM(Customer.CustomerID),RTRIM(Name),RTRIM(ContactNo), GrandTotal, TotalPaid, Balance, RTRIM(InvoiceInfo.Remarks) from Customer,InvoiceInfo where Customer.ID=InvoiceInfo.CustomerID and InvoiceDate between @d1 and @d2 order by InvoiceDate", con)
186             cmd.Parameters.Add(
"@d1", SqlDbType.DateTime, 30, "Date").Value = dtpDateFrom.Value.Date
187             cmd.Parameters.Add(
"@d2", SqlDbType.DateTime, 30, "Date").Value = dtpDateTo.Value.Date
188             rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
189             dgw.Rows.Clear()
190             While (rdr.Read() = True)
191                 dgw.Rows.Add(rdr(
0), rdr(1), rdr(2), rdr(3), rdr(4), rdr(5), rdr(6), rdr(7), rdr(8), rdr(9), rdr(10))
192             End While
193             con.Close()
194         Catch ex As Exception
195             MessageBox.Show(ex.Message,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
196         End Try
197     End Sub
198
199     Private Sub cmbOrderNo_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbInvoiceNo.SelectedIndexChanged
200         Try
201             con = New SqlConnection(cs)
202             con.Open()
203             cmd = New SqlCommand(
"Select Inv_ID, RTRIM(InvoiceNo), InvoiceDate, Customer.ID,RTRIM(Customer.CustomerID),RTRIM(Name),RTRIM(ContactNo), GrandTotal, TotalPaid, Balance, RTRIM(InvoiceInfo.Remarks) from Customer,InvoiceInfo where Customer.ID=InvoiceInfo.CustomerID and InvoiceNo='" & cmbInvoiceNo.Text & "' order by InvoiceDate", con)
204             rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
205             dgw.Rows.Clear()
206             While (rdr.Read() = True)
207                 dgw.Rows.Add(rdr(
0), rdr(1), rdr(2), rdr(3), rdr(4), rdr(5), rdr(6), rdr(7), rdr(8), rdr(9), rdr(10))
208             End While
209             con.Close()
210         Catch ex As Exception
211             MessageBox.Show(ex.Message,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
212         End Try
213     End Sub
214
215     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
216         Try
217             con = New SqlConnection(cs)
218             con.Open()
219             cmd = New SqlCommand(
"Select Inv_ID, RTRIM(InvoiceNo), InvoiceDate, Customer.ID,RTRIM(Customer.CustomerID),RTRIM(Name),RTRIM(ContactNo), GrandTotal, TotalPaid, Balance, RTRIM(InvoiceInfo.Remarks) from Customer,InvoiceInfo where Customer.ID=InvoiceInfo.CustomerID and InvoiceDate between @d1 and @d2 and Balance > 0 order by InvoiceDate", con)
220             cmd.Parameters.Add(
"@d1", SqlDbType.DateTime, 30, "Date").Value = DateTimePicker2.Value.Date
221             cmd.Parameters.Add(
"@d2", SqlDbType.DateTime, 30, "Date").Value = DateTimePicker1.Value.Date
222             rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
223             dgw.Rows.Clear()
224             While (rdr.Read() = True)
225                 dgw.Rows.Add(rdr(
0), rdr(1), rdr(2), rdr(3), rdr(4), rdr(5), rdr(6), rdr(7), rdr(8), rdr(9), rdr(10))
226             End While
227             con.Close()
228         Catch ex As Exception
229             MessageBox.Show(ex.Message,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
230         End Try
231     End Sub
232
233     Private Sub txtCustomerName_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtCustomerName.TextChanged
234         Try
235             con = New SqlConnection(cs)
236             con.Open()
237             cmd = New SqlCommand(
"Select Inv_ID, RTRIM(InvoiceNo), InvoiceDate, Customer.ID,RTRIM(Customer.CustomerID),RTRIM(Name),RTRIM(ContactNo), GrandTotal, TotalPaid, Balance, RTRIM(InvoiceInfo.Remarks) from Customer,InvoiceInfo where Customer.ID=InvoiceInfo.CustomerID and Name like '%" & txtCustomerName.Text & "%' order by InvoiceDate", con)
238             rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
239             dgw.Rows.Clear()
240             While (rdr.Read() = True)
241                 dgw.Rows.Add(rdr(
0), rdr(1), rdr(2), rdr(3), rdr(4), rdr(5), rdr(6), rdr(7), rdr(8), rdr(9), rdr(10))
242             End While
243             con.Close()
244         Catch ex As Exception
245             MessageBox.Show(ex.Message,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
246         End Try
247     End Sub
248
249     Private Sub cmbInvoiceNo_Format(sender As System.Object, e As System.Windows.Forms.ListControlConvertEventArgs) Handles cmbInvoiceNo.Format
250         If (e.DesiredType Is GetType(String)) Then
251             e.Value = e.Value.ToString.Trim
252         End If
253     End Sub
254 End Class


Gõ tìm kiếm nhanh...